//
// Created by huangjunhao on 2022/10/27.
//
#include <stdio.h>
#include <stdlib.h>

void main()
{
    short s;
    int i;
    long l;
    unsigned short us;
    unsigned int ui;
    unsigned long ul;
    scanf("%hd", &s);
    printf("%d", s);
    /* 执行以上语句时，
    输入 显示
    -32769
    计算机科学与技术专业 《程序设计基础》实验指导书
    共9页 第8页
    -32768
    32767
    32768
    可见，short 数据在64位计算机上的表示范围是： short型数据的表示范围是-32768~32767；
    */
    scanf("%d", &i);
    printf("%d", i);
    /* 执行以上语句时，
    输入 显示
    -2147483649
    -2147483648
    2147483647
    2147483648
    可见，int 数据在64位计算机上的表示范围是：  -2147483648～2147483647(-2^32～2^32-1)
    */
    scanf("%ld", &l);
    printf("%ld", l);
    /* 执行以上语句时，
    输入 显示
    -2147483649
    -2147483648
    2147483647
    2147483648
    可见，long 数据在64位计算机上的表示范围是： int占4字节，long占8字节，long数据范围变为：-2^63~2^63-1
    */
    scanf("%hu", &us);
    printf("%u", us);
    /* 执行以上语句时，
    输入 显示
    -1
    0
    65535
    65536
    可见，unsigned short 数据在64位计算机上的表示范围是：
    */
    scanf("%u", &ui);
    printf("%u", ui);
    /* 执行以上语句时，
    输入 显示
    -1
    计算机科学与技术专业 《程序设计基础》实验指导书
    共9页 第9页
    0
    4294967295
    4294967296
    可见，unsigned int 数据在64位计算机上的表示范围是：
    无符号表示没有负数；  unsigned short类型占两个字节    二进制下最大值为111111111111111转为十进制就是65535
    故取值范围是[0,65535]
    */
    scanf("%lu", &ul);
    printf("%lu", ul);
    /* 执行以上语句时，
    输入 显示
    -1
    0
    4294967295
    4294967296
    可见，unsigned long 数据在64位计算机上的表示范围是：
     unsigned long型为64位无符号整数，   取值范围在0~18,446,744,073,709,551,615之间
     【0 ~ 2^63-1】
    */
    system("pause");
}